I have just started a github MPLABX project using a 24F as a secondary processor to control this board. It is a work in progress, but I have some time off after the 4th. The theory is that the 24F will expose a pin to the main CPU as an interrupt signal that a button has been debounced. The main CPU will communicate via SPI to the 24F slave to set LEDs, led brightness (PWM), and read the switch states. There are limitations because of the amount of current the 24F can sink/source, and I have not yet debugged the switch stuff yet.
some will not like it because it is object oriented, but you get what you pay for (free) the url https://github.com/UriRedDog/ButtonPad.X
I have no idea when it will be finished, but if someone wants to design or code the SPI interface, then have at it. The SPI interface does not have to be OOPs, but it has to be “clean code” so that one can read it and maintain it.