Have a look at the Teensy joystick examples. The Teensy 2.0 uses the same processor as the Leonardo and all the Teensy libraries are written in a way that works on almost all Arduinos.
There may be a simple setting that lets one joystick have more than 3 axes. I know you can have a staggering number of buttons on one joystick HID.