Convertendo a cor de 8 bits em valor RGB

Estou implementando iluminação global no meu mecanismo de jogo com "mapas de sombra refletivos". RSM tem i.a. textura de cor. Para economizar memória. Eu estou empacotando o valor de 24 bits em um valor de 8 bits. Está bem. Eu sei como fazer as malas. Mas como faço para descompactar? Eu tive a idéia de criar uma textura 1D com paleta de 8 bits, com 255 cores diferentes. Minha cor de 8 bits seria o índice de pixel nessa textura. Não sei como gerar esse tipo de textura. Existem maneiras matemáticas de converter o valor de 8 bits em rgb?

@edit A cor está neste formato:
RRR GGG BB

@ edit2: E estou arrumando minha cor assim:

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:
Tudo bem, eu encontrei uma maneira de fazer isso, eu acho. Me diga se está errado.

@ edit4 Está errado ...

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

questionAnswers(2)

yourAnswerToTheQuestion