may be out of topic but. as the topic is "masked sprites"...
I remarked that a game like antiriad actually uses some sort of "octet" mask for sprites.
being mode0 the masks works with blocks of 2 pixels (=1 octet).
due to the graphic design of the game and the blocky mode0, no one seems to bother/notice.
I guess this may actually be a brilliant way to simplify the mask and the weight of the mask.
check : the mask to the pixel :
Mode2 : double the weight for each pixels (as for masked speccy graphics).
Mode1 : add 50% of RAM weight : mask 1bpp + graphics 2bpp
Mode0 : add 1/4 "weight" per pixels : 1bpp mask + 4bpp graphics.
to get the mask in "octet pixels" may be even lighter then... each block of 2 pixels (= 1 octet) only needs 1 bit to be masked.
Also I guess it is faster to work with full octets, as you don't need to cut an octet for each transparency pixels.
On the other hand, Antiriad also uses 2bpp graphics and manages the 16 colours palette into 4x4 colours palettes (Black colour being redundant in each sub palette) as the game was ported graphically from C64, it uses the same sort of "logic" for the display.
needless to say, 1byte mask may not look good in mode1.

But to use "mode0" mask may be a way to gain some ressources, be it RAM datas or even (not sure) CPU as you don't need to cut the byte into 4x2bits (4 pixels) but into 2x4 bits (2 blocks of 2 pixels)