How to distinguish multiple GPIO Buttons?
Well, for a small number of buttons, say 8, you can use 8 GPIO pins, each of which entertains one button. But that is a big waste of GPIO pins. For more than 8 buttons, you can use GPIO extenders such as MCP23017, each of which adds 16 more GPIO pins, and greedy you can "easily" (see warning below) use 8 MCP23017s to get 8 * 16 = 128 buttons.
To distinguish 128 buttons in a row is a bit messy. So all these years the EE guys have been using the standard matrix wiring method to make their job easier. A simple example of 16 buttons or keys (actually "button" and "key" are the same thing), wired in 4 rows by 4 columns matrix (you can buy one from eBay for less than one US dollar!)
Now of course you can use 8 Rpi/MPU GPIO pins to scan a 4 x 4 = 16 key keypad. But of course the clever EE guys would not waste 8 GPIO pins, so they use MCP23008 with 8 GPIO pins, so not bothering Rpi which would do other chores and only when interrupted by MCP23008, then diverted to check which key or keys are pressed. If you want 64 keys, then you can use MCP23107 with 16 GPIO pins to scan a 8 x 8 = 64 key keypad.
For "humble" newbies, I would recommend to start with only 4 Rpi GPIO pins, to scan a corner of the cheapy 4 by 4 keypad (yes, you don't need to scan all 16 pins, to make things newbie friendly)
To give you a very rough idea of the scanning thing, the flowchart below should be helpful.
The flowchart shows a general scanning method for both using Rpi GPIO pins or MCP23008 pins.
If you are interested to learn all the details, including project background etc, you might like to read the following posts.
Connecting 32 magnetic sensors
More Digital Inputs
If you are a maker and picture guy, and prefer pictures than boring text, then let me show you a couple more pictures, ...
How to distinguish keys
How to test one keypad key
How to test multiple keys pressed at the same time
One good thing about use matrix keypad is that individual key interrupt pins can be "logically" connected so that when one or more keys are pressed, only a combined single interrupt goes to Rpi (which is not wasting time busy looping, but doing other useful non keypad related thing) which can first take note of the interrupt event, then later when free, leisurely check which keys are pressed. A handy hardware troubleshooting tools is also displayed below.
Warning to newbies - DON'T jump start with MCP23017!
For those brave, proud newbies who (almost always fail eventually! :)) want to jump start with a 64 key keypad using MCP23017, I would like give a severe warning - MCP23017 has a very steep learning curve, and is absolutely not for the faint of hearts. Just in case some curious newbie wants to have a look of the deceptively easy circuit, here is an oversimplified schematic.
Good luck to your multiple GPIO button project! :)