I am planning to make my own arcade controller and would like to use a single microcontroller that appears to the host as multiple HID game controllers. From looking around it seems like the functionality to implement more than one simultaneous HID might not yet be available. I am wondering how much work would there be involved to achieve this. I've got experience writing embedded software, but haven't really touched USB properly (just used out of the box APIs so far). Nevertheless I am looking forward to dive into it and, if it's cool with the project owners, more than happy to send a pull request after getting everything working and tested.

Also, as a side question. Is there any software I2C bitbang library available as well?