I basically just have an event at the very end of my events that moves the object to it's Y position - air height, then at the very start of the code it's told to do the opposite so its collision detection and everything is still at base air height, but the sprite is drawn at its air height to pull off fake 3D. I just was thinking it might be more efficient to do this another way because I need to optimize my game some more, but I guess 0.7% CPU usage on each of those events alone isn't enough to even care about. That's a lot less than I thought it was.
By the by, is this 64 collisions per tick when nothing is happening good for having 2,273 objects in a layout? Most are static obstacle objects.