Is it possible to split USB 2.0 control requests?
Instead of requesting the configuration descriptor and getting all of the interface and endpoint descriptors together, you could request the descriptors one at a time. A device descriptor is 18 bytes, and the other standard descriptors are even smaller. (Class descriptors might be larger, so pick the largest one you need as the buffer size.) You'll need to parse the descriptors to figure out what else to request, but that's not much extra work. The device descriptor gives the number of configurations, config gives the number of interfaces, and interface gives the number of endpoints and the class.