add ground mode and camera switching

* Also fix chopped updates from previous commit
* Also simplify and refactor code