Improved spectator movement

Pokes quite deep into the engine and needs some more testing before merge.