It looks like the compiler is being a naughty program when nodes of a path hierarchy are named world, even though it's syntactically valid.
plane_master
parent_type = /obj
plane = -10001
client/New()
. = ..()
screen += new/plane_master/world()
#define WORLD_PLANE 4999
plane_master
world
plane = WORLD_PLANE
mob/Login()
world.log << (new/plane_master/world():plane)
Expected output: 4999
Actual output: -10001
plane_master
parent_type = /obj
plane = -10001
client/New()
. = ..()
screen += new/plane_master/world()
#define WORLD_PLANE 4999
plane_master
world_plane
plane = WORLD_PLANE
mob/Login()
world.log << (new/plane_master/world_plane():plane)
Expected output: 4999
Actual output: 4999
I tested these in wrench here in BYONDiscord for verification.
The above code snippets should duplicate the problem in an empty DME with nothing else going on.
If you need, there's a test project here with an environment set up where you can swap between the bugged / working versions of the code to see what the difference is at the compiler level.
Big love, BYONDaddy!