I believe I see better what you mean now. But I ask you, what is it that you have accomplished that Construct does not already do through layouts? If anything, you are adding an extra couple of steps to achieve what is, in your mind, a better means of organization.
Which is fine, don't get me wrong.
Now if we were to remove your starting "flow" checks (a global variable dictating what code to use), we're back to square one. Expanding your flow events out reveals that you are doing no different than the rest of us as far as picking objects via their criteria. In this I will admit you have not limited the scope of the program - if you will also admit you have added nothing but an organizational element to your event sheet.
It's 0400 my time, and I am about to pass out. I will give your .cap a more in-depth look in the morning to see if I can help you with the mouse and behavior stuff. In the mean time I suggest you play around with the Ball Behavior's "Set Activated" function.
To be continued...