Well, okay, but did you run the code I posted?
Try running this version of your project...
sync on
sync rate 100
hide mouse
load object "1.x",1
set object wireframe 1,1
position camera limb position x(1,1),limb position y(1,1),limb position z(1,1)
Rotate camera limb angle x(1,1),limb angle y(1,1),limb angle z(1,1)
fog on
fog color 0
fog distance 300
color backdrop 0
Do
If shiftkey() then fog on
if controlkey() then fog off
move camera mouseclick()=1
move camera -(mouseclick()=2)
sync
LOOP
If you turn off the fog, you will see that your hall object uses really long polygons,
with no vertices between the beginning and end.
Again, it's the number of vertices that matter here. The fog needs more vertices to be able to map the color change to the hallway.
I'm speaking from experience here, I was working on a big 3D dungeon, and I thought, "Why put a separate small floor tile on each dungeon segment? Why not just put a big floor poly down and scale the texture?" And this is why it didn't work.