This setup was initially implemented as a workaround for a bug in 2.43, where the ipo actuator wouldn’t play on dynamic objects. So I had to have that static object to actually play the frames, and then copy the raw orientation via python to the player object.
But yea, since that bug is no longer an issue in 2.45, that ugly “rotation bounce” is no longer necessary.
I got your PM, and I’m sorry to say that I don’t really have the time to explain the FPS template in deep detail. There’s too much stuff in there, and honestly if you’re having trouble understanding the setup, then that’s just a sign that you need to start with something simpler.
Anyone just starting out with the BGE should stay far, far away from any FPS undertaking. Because doing that is like jumping into the deepest, darkest parts of the ocean, when you don’t even know how to swim yet - not a good idea.