What makes you believe that you can send/receive more than 32 bytes per packet?
Why do you want to drop packets if more than one happens to be available?
Why are you using a pipe address that has very few bit-changes?
What are the delays in setup good for?
Why are you typedef-ing a struct?