so it appears that one needs to send a report of 45 bytes in order to communicate correctly with the PS3. If I understand correctly, USB 1.1 only supports 8 byte descriptors, although on the V-USB forum there is one guy who suggests to do the following to circumvent this limit:
while (!usbInterruptIsReady()) usbPoll(); // need to wait
usbSetInterrupt((void *)&reportBuffer + 0, curGamepad->report_size);
while (!usbInterruptIsReady()) usbPoll();//need to wait
usbSetInterrupt((void *)&reportBuffer + 8, curGamepad->report_size);