u6s will be byte-aligned, causing the array to hold 1 byte per element (you can verify that @sizeOf([4]u6) == 4).
I would have guessed that it would have been 32 bits, but I guess bitSizeOf is not counting the 2 trailing unused bits, i.e. only counting the region of bits that are used, but still accounting for padding within the array.
That way, you can reinterpret the data without needing casts (with block.as_x) while still letting you access each block of 4 as an array of u6, if that’s the most natural way for your program to process the data.