The wobble is on purpose. It's just a little sin() added to the rotation and it's supposed to make the character look like it's walking. Of course something that stupid won't be in the game.
The turning is done by
setRotation((getRotation() * 4 + targetDir) / 5);
i think you can lower the turn rate by increasing both numbers. however, this was only the quickest, simplest smooth turning i could think of, something more advanced can of course replace it
By mode 1, i assume you mean the mode where the actual integer value is 1, so it's
2: The "FPS" input (up = move to cursor), but without the adjustments
anyway, i personally feel most at ease with 3 or 1, so i guess here we have a good reason to make it a setting in the game
