Ill just say my 2 cents regarding point number 1:

1. the track order is reversed, the first track being at the bootom
It seems that's the way with most physical controllers too, I've got an Akai LPD8,
and "bottom-left" counts from pad 1, upwards. See the following image of an Akai 16 pad:
http://www.jmsinfo.com/images/Akai_MPD18_MIDI_USB_Drumpad.jpg

I'm not sure how your program works internally as to what the best solution is to
solving this problem.

In my WIP project I've used LibLO for OSC, and create a function in my Sampler class which
takes an int parameter as for which pad to play. This seems a pretty clean solution to me,
however as I say, I havent looked at your sources as to what's the best implementation.

HTH, -Harry