switch matrix with ring counter
I'm going to suggest that you learn about shift registers.  4 pcs of a 8-bit parallel-to-serial shift register would work very well for you and would need a maximum of 3 lines to your controller.  Some of those lines can even be shared with other functions if you are clever.

The CD4021 is a nice part that I use in many of my designs.  You will need a pull-up resistor for each input.  I use SIP bussed resistor networks - 10 pin package gives you 9 pullup resistors in a very small space.

You can also mount the shift registers very close to your switches to minimize the number of wires to the controller.