I'm not sure if this is exactly what you want, but it's a try.
Note that I'm using Quest 5.6. The grid code in Quest seems to be continually evolving, so I'm not sure if this will work with 5.5 or earlier.
Here is the full test game.
<!--Saved by Quest 5.6.5510.29036-->
<asl version="550">
<include ref="English.aslx" />
<include ref="Core.aslx" />
<game name="downmaptest">
<gameid>afca1937-7ae4-4bcf-af7e-73c3ba8ff12e</gameid>
<version>1.0</version>
<firstpublished>2015</firstpublished>
<gridmap />
</game>
<object name="room">
<inherit name="editor_room" />
<object name="player">
<inherit name="editor_object" />
<inherit name="editor_player" />
</object>
<exit alias="north" to="nroom">
<inherit name="northdirection" />
</exit>
<exit alias="south" to="sroom">
<inherit name="southdirection" />
</exit>
<exit alias="east" to="eroom">
<inherit name="eastdirection" />
</exit>
<exit alias="west" to="wroom">
<inherit name="westdirection" />
</exit>
</object>
<object name="nroom">
<inherit name="editor_room" />
<exit alias="south" to="room">
<inherit name="southdirection" />
</exit>
</object>
<object name="sroom">
<inherit name="editor_room" />
<exit alias="north" to="room">
<inherit name="northdirection" />
</exit>
</object>
<object name="wroom">
<inherit name="editor_room" />
<enter type="script">
Grid_SetGridCoordinateForPlayer (game.pov, dwroom, "z", Grid_GetGridCoordinateForPlayer(game.pov, wroom, "z")+1)
</enter>
<exit alias="east" to="room">
<inherit name="eastdirection" />
</exit>
<exit alias="west" to="dwroom">
<inherit name="westdirection" />
</exit>
</object>
<object name="eroom">
<inherit name="editor_room" />
<exit alias="west" to="room">
<inherit name="westdirection" />
</exit>
</object>
<object name="dnroom">
<inherit name="editor_room" />
<exit alias="south" to="dwroom">
<inherit name="southdirection" />
</exit>
</object>
<object name="dsroom">
<inherit name="editor_room" />
<exit alias="north" to="dwroom">
<inherit name="northdirection" />
</exit>
</object>
<object name="dwroom">
<inherit name="editor_room" />
<enter type="script">
Grid_SetGridCoordinateForPlayer (game.pov, wroom, "z", Grid_GetGridCoordinateForPlayer(game.pov, dwroom, "z")-1)
</enter>
<exit alias="east" to="wroom">
<inherit name="eastdirection" />
</exit>
<exit alias="north" to="dnroom">
<inherit name="northdirection" />
</exit>
<exit alias="south" to="dsroom">
<inherit name="southdirection" />
</exit>
</object>
</asl>
It's largely rooms I put in to see the map. It has a main room with four exits off in the normal cardinal directions. The room to the west has another room to the west, which is supposed to be a level down.
Each of the two special rooms (the west room ("wroom") and the down west room ("dwroom")) have "enter" scripts which fix up the levels of the rooms they connect to. It turns out that every time you enter a room, Quest will fix up all the rooms it connects to, so you have to continually update the z coordinates on entry.
Here is a sample "enter" script:
<enter type="script">
Grid_SetGridCoordinateForPlayer (game.pov, wroom, "z", Grid_GetGridCoordinateForPlayer(game.pov, dwroom, "z")-1)
</enter>
What it does is to simply set the grid "z" coordinate to the one "down" from the current room.
Hope that helps!