I had a thought about a solution for the "trees floating over the pits" problem. Instead of requiring the person designing the map to worry about the problem, have the engine calculate the x-position for midground objects based on their distance.
Actually, this won't work -- I was thinking in terms of a single screen where the camera is not moving, but for a moving camera, the background grid shifts right compared to the foreground grid as the camera moves. Consider this for example (overhead view, camera at the bottom):

At this point, the tree is in grid 5 and not floating over the pit.
Then if we move a little to the right:

Now the foreground grid has move 3 squares, while the background grid has moved only one square. This results in the tree being directly over the pit when viewed from this perspective.
So, there are a couple of ways around this. The first would be to simply design the maps so there are no background objects on squares that are close to pits (it might not even be possible, considering how much slower the backgrond moves in comparison to the foreground). Probably a better solution would be to change the sky panel, so that it has a ground texture from ground-level down. So instead of this:

You would have something like this:
