This is more like isometric then 3d really.
As to efficiency:
I would stuff all in 1 layer.
Put the tree origin in the center at the bottom of the trunk, and use a collision polygon as a circle at the foot of the tree (lining the trunk)
Then you can either make the tree solid, or use some events preventing you to overlap the tree trunk collision.
For each through all the objects that require Z-sorting, descending, and place the objects at the top. Instantly solving the "who is on top" issue.
There's a plugin or behavior for it nowadays I think. Z-sort or something.