Hi DJ,
Quote: "it appears not to be. And an 11 bit number would not fit inside a byte"
Very true. I meant only that they're telling you (in the SWF docs) that they're storing the NBITS value as the lower 5 bits of a byte, when they refer to UB[5], so before you can do anything else you've got to decode the lower 5 bits of the first byte. From there, you could theoretically be faced with the need to decode longwords ("11111" = 31 bits maximum), not just the 8-bit bytes or 16-bit words.
Generally though, any time you're faced with the need to read variable-length data and the data itself contains a field length value, there's always a predefined starting point that everybody can agree upon. From the page in your example, the 5 bit length always appears as the lower 5 bits of the first byte of data in the RECT structure.
From there, you're guaranteed to have your xmin,xmax,ymin,ymax values actually span multiple bytes of data, so you'll have to slice bits and reassemble them. Xmin is going to always start at the 6th bit (immediately after the last bit of the NBits) but could end within the same byte as the NBITS field or stretch almost all the way across the following longword.
Anyway, you'll solve those mysteries one way or the other as you develop your plugin

I think you're heading in the right direction doing it in C++. Let us know what you find out. You've shown me something I didn't know already, which was the ability to play flash movies via a plugin. Thankee.