The 122 switches give velocity information by comparing the timing between the two buttons for each key, which are spaced at slightly different depths. I'm surprised it works with any reliability, but apparently it does well enough and is a pretty common design for simple keyboards:http://www.openmusiclabs.com/learning/digital/input-matrix-scanning/keyboard/
I haven't really tried this so I would do a few more searches on the topic of something like "velocity sensitive midi arduino".
One possibility is a matrix (like a keypad) but you will throw away polyphony doing that.
You are right (I think) with diodes to stop cross-talk between the switches, I suppose it is the same as multiplexing a 64-segment LED display, except in reverse. Oh well, that makes it nice and simple. A few shift registers or a couple of 16-port port-expanders and you should be able to interrogate all 128 combinations fairly quickly.