get_dir() does not seem to be able to return the constants UP or DOWN. This is inconsistent with the other get_*, step and walk functions being able to accept UP or DOWN as argument dir.
world
maxx = 10
maxy = 10
maxz = 3
mob/Login()
loc = locate(5,5,2)
var/mob/mob1 = new(locate(5,5,1))
var/mob/mob2 = new(locate(5,5,3))
world << get_dir(src, mob1)
world << get_dir(src, mob2)
var/turf/uploc = get_step(src, UP)
world << "[uploc.x], [uploc.y], [uploc.z]"
var/turf/downloc = get_step(src, DOWN)
world << "[downloc.x], [downloc.y], [downloc.z]"
world << "before step: [x], [y], [z]"
step(src, UP|EAST)
world << "after step: [x], [y], [z]"