Yeah I ran in to this as well. Joystick is mainly for flight application as it has ruder and throttle controls. The game pad is more for everything else. For example the PID layer will not work on the joystick only game pads so you can not have rumble with a joystick. It may be there just for some backward compatibility thing, not sure. Though never use joystick unless you need more flight friendly control names.I wanted to figure out why there were separate classes for Game Pad and Joystick.
BTW: the issue with game pads seeing 32 buttons was a bug in the kernel. Its now fixed as I submitted the bug. kernel version released after 10/31/2012, which should be 3.8 or later has the fix.
http://comments.gmane.org/gmane.linux.k ... nput/27616
So Ubuntu 13.04 or later will see all 32.