WASD to move, arrow keys to rotate the camera. I found out that the quaternion rotation was right, but misaligned. After modifying the quaternion multiplication, I was able to FINALLY get it right. FINALLY. time to shove ten million matrix maths scripts into my engine.
@76finding_ (or @76findingalt ) for the original project.