Adafruit sells a well known I2C IO expander MCP23017. That chip has a SPI sibling, MCP23S17. They share everything, except S17 has 2 extra pins (that are marked NC in 017). Problem is, Adafruit doesn't sell S17. I'd like you to include this part, even if you don't sell. It's 99% same with 017. I only changed 20 lines or so from 017 part you have.
we probably wouldn't accept a PR since we cannot test the part - feel free to submit to fritzing (they have their own collection) or just have your own lib :)
Adafruit sells a well known I2C IO expander MCP23017. That chip has a SPI sibling, MCP23S17. They share everything, except S17 has 2 extra pins (that are marked NC in 017). Problem is, Adafruit doesn't sell S17. I'd like you to include this part, even if you don't sell. It's 99% same with 017. I only changed 20 lines or so from 017 part you have.