@Lepri: This is specifically what
this bit of code is supposed to handle.
It appears to do the job on the original Oasis (it was contributed by an Oasis user), but apparently doesn't exactly do everything right on the KOA2.
It might do too much, or not enough, or something wrong. This is typically the kind of stuff I'd put through trial and error (aka, throw shit on the wall and see what sticks), because while I get what's happening, the seven billion layers of indirection involved in rotation handling make my brain hurt ^^.