Here's my two cents: scan the array of switches however you choose that associates a number from 1 to 20 with each actuated switch. Let these numbers represent binary bit positions in three bytes of a four-byte word. The fourth byte is a CRC of the first three bytes. Now, either transmit the 4-byte sequence with an IR or RF transmitter each time a bit changes in the three bytes representing the twenty push-button switches. Or transmit the 4-byte sequence repeatadly at whatever rate makes sense for your application.
It doesn't matter too much which wireless method you choose, as long as you have sufficient signal+noise to noise ratio to allow reliable reception and decoding of the data stream over the required distance. That is why I suggest including a cyclic redundancy check (CRC) byte in the data stream. You are going to need some sort of microprocessor to implement this project, so might as well add the CRC check-sum to the data stream.