You could simply wire the buttons up as a matrix, your usecase already describes the buttons being placed in a grid pattern. If you wire all the button pins vertically and horizontally you can form a matrix, with the 28 GPIO pins avalible on all Pi models but the first edition. You should be able to theoretically run 14^2 buttons or aprox 196 buttons.
The way this would be run is, you would have an infinite loop that would constantly power 1 column at a time, then while that column was powered if any of your row pins recieved power you would know that a button was depressed and you would know the (x,y) coordinates of said depressed button. You can read more about the concept here.