One of main tools is Z-ordering. In most objects it's give one tile above second. But some objects are exceptions.
For example let's we take "Solid left and top edge" (object 13)
Z-ordering works if below object is any tile (even Map16 one). In most objects you will notice some dirt at corner. But wait, it's NOT always the case.
Most slope Map16 tiles will make some other Map16 tile. (the programmers specified this case)
Tile 025 (blank tile) doesn't change Map16 tile.
NOTE: This takes real tile number, NOT BEHAVIOR (setup through Map16 editor)
Of course these are basics, but what if we take Map16 tile 125. It will completely ignored by wall. Why? Because game in Z-ordering change of tiles only take LOW NUMBER into account. For Z-ordering it's doesn't matter if tile is 025, 125, 525, A25. Everything will work this same way.
This gives really strange results with Big Bush (EX: 82 or 83). When you try to insert ANY tile below it (not counting X25) it will glitch somewhat. The blank tiles which bush does have are replaced with used tile with high number "00". So if you insert cloud (106) you will get vine (006). This is bug which causes the page used by object (ever seen special Z-ordering object which used tiles from many pages???) to cannot change high number if special Z-ordering is used by object.
Funniest case is treetop one. When it's above ANY tile (not counting tree trunk case low tiles) it will for some reason use forest tiles, BUT with high number "01"
Note: Climbing net needs seriously object, not MAP16 tile. I don't know why.
--------------------Legacy ports zip
(now that those went down because Dropbox)