You can have the buffer any length as long as the discriptor is set correctly.

example

Code:
USBBufferSizeMax   con 16  ' maximum buffer size
USBBufferSizeTX    con 16  ' input 
USBBufferSizeRX    con 16  ' output

Code:
  ; report count (number of fields)
    retlw	0x95
    retlw	0x10   ; 16 byte buffer
it could be 3 bytes, 5 bytes as many as you want up to 64 bytes