I wrote a camera system up.
Here's the wiki page with some code. The idea is that all the information on how to set up a camera right before render is in the Camera class.
You can make different camera classes for different view modes, for example a FirstPerson mode and a ThirdPerson mode. So switching camera mode is just a case of setting the player's Camera class to one of these modes.
attribute 'class' not allowedattribute 'contenteditable' not allowedattribute 'blocktype' not allowed
The above demonstrates three camera modes. Third person, First Person and a DevCam mode (in which you can move around freely, even when paused).