If you’re really, really into mapping everything to a controller, I recommend you use glovepie.
It’s a crazy tool that lets you write a script that rewrites inputs from any device to any device. It was designed to work with motion-sensitive controls like spatial-aware gloves, but it has support for every conceivable controller, really. You could even manage to map a driving wheel to the Cata controlls for vehicles if you really wanted.
If you’re short in keys, you can add switches to fork your controller into several operating modes or whatever your imagination and control-flow skills are up to. Theoretically, you could even turn your controller into a chorded input device (where you press several buttons for a single output), or code mouse gestures to actions. The sky is the limit. =3