There are many ways to approach this. The simplest would be to use a few of the analog input channels (if you're not using them for something else) to read a series of buttons via a resistor ladder. Have a look at this tutorial that reads 5 buttons with 1 Arduino analog in - exactly the same logic can be applied to Bela.
http://tronixstuff.com/2011/01/11/tutorial-using-analog-input-for-multiple-buttons/
Note that with this approach there are issues with simultaneous button presses that are going into the same analog input so it might be an idea to keep the performance critical buttons going through digital inputs and to run state changing buttons through the analog ins.
You can probably read more than eight buttons through each analog in, note that the reading will vary between 0.0 and 1.0 when you get it into Pd and you'll have to figure out a way of thresholding the values like is done in the Arduino code.
Another option is a button matrix, for a matrix of x rows and y columns you only need x+y digital pins, so in your case 30 = 5x6 so 11 pins. Tutorial on reading a button matrix here:
http://www.circuitstoday.com/interfacing-hex-keypad-to-arduino
Plus a good discussion of all possible approaches to multiple buttons here:
http://electronics.stackexchange.com/questions/83720/a-good-circuit-for-a-large-number-of-push-button-inputs