The reason the hardware is the way it is, if you look at the final product, there are 2 banks of 4 buttons. Each bank is on it's own PCB. The PCBs are identical, and can be rotated 180 degrees to go on the left or right. It's for ease of manufacturing.
Also the software you suggested is too simple. I tried something like what you have, but you'd tap the button, and it returns a press 10 or 20 times. I need something that presses once when you want once, and also to scroll through a hundred selections quickly.