Wow. I knew there was some weird alignment stuff going on with PPC, but this is just sick. Whoever came up with this should be shot
It's a way of saving silicon. Selection logic required to actually support little endian properly would waste a lot of die space. The approach they took gets you little endian semantics for aligned accesses with minimal cost in silicon.
The weirdness of load/store multiple in LE mode isn't that bad - they fail with an exception so the OS can emulate them or kill the app. The page table weirdness has to do with the locations that values smaller than 64 bits appear in. It has the same format, but from the operating system's point of view, the order of some fields isn't the same as it is in BE mode. Once again this is to save silicon - the layout from the CPU's point of view is the same as it is in BE mode.
I never understood what the big advantage of having a BE/LE switchable CPU was. I mean couldn't they decide on either one and stick with it? or maybe create two different hardware versions, one for BE and one for LE? why the need for switching at runtime?