Convertir color de 8 bits en valor RGB

Estoy implementando la iluminación global en mi motor de juego con "mapas de sombra reflexivos". RSM tiene i.a. textura de color Para ahorrar memoria. Estoy empaquetando valor de 24 bits en valor de 8 bits. De acuerdo. Sé cómo embalarlo. Pero, ¿cómo lo desempaco? Tuve la idea de crear una textura 1D con una paleta de 8 bits, con 255 colores diferentes. Mi color de 8 bits sería índice de píxel en esa textura. No estoy seguro de cómo generar este tipo de textura. ¿Hay alguna forma matemática para convertir el valor de 8 bits en rgb?

@edit El color está en este formato:
RRR GGG BB

@ edit2: Y estoy empaquetando mi color así:

int packed = (red / 32 << 5) + (green / 32 << 2) + (blue / 64);
//the int is actually a byte, c# compiler is bitching if it's byte.

@ edit3:
Bien, creo que encontré una manera de hacer esto. Dime si está mal.

@ edit4 está mal ...

int r = (packed >> 5) * 32;    
int g = ((packed >> 2) << 3) * 32;    
int b = (packed << 6) * 64;

Respuestas a la pregunta(2)

Su respuesta a la pregunta