For the room with floors at different heights;
I have three floor-areas and two staircase-areas.
Each area is surrounded by hit-boxes (I have a special triangle hit-box for walls/edges that are at an angle). If the characters x/y (at bottom middle) enters a hit-box the character is moved back to prevX/prevY. There are only openings at exit/enter points between floor and staircase (and the door to the room).
For the floor areas I use scaling on the character depending on position in the y-direction. Lower y-value = more scaling.
Each floor has different settings as the the floors are closer or further away from the viewer.
The staircases connects the floors and here the scaling changes with the x-position so that the scaling factor at each end corresponds with the scaling of the floor at the two exit/enter points.
A variable shows which area the character is in. The variables value is changed at the exit/enter points.
A bit of cover with different depth depending which area the character is in adds to the illusion.
Drawing the room, my relationship with the laws of perspective is quite lose. How well I can use the space from a practical point of view is more important than strict perspective. It is all about selling an illusion to the viewer.
Thanks for the tip about the padding. The white lines definitely are connected with scaling. I leave that to later though, since I still might make changes to the sprites.