The ImageListEditor won't be able to open the picture because the Picture property is empty. There is no point having the image in Picture as well as a texture. That is a waste of memory. Is there a way around it in the ImageListEditor? Can you draw the texture instead of using the Picture property?

To fix the crash, try adding these lines at the top of TImageListCollection.LoadFromStreamData.
Code:
  TOmegaImageList(Owner).FRenderer.OmegaScreen := TOmegaImageList(Owner).OmegaScreen;
  TOmegaImageList(Owner).FRenderer.Init;
That is something that TOmegaImageList.Init did but I forgot to do. I didn't notice it because I was using TImageListItem.Draw, not Draw4Col.

Note: The size of the file is dependant on the file type that is specified in the call to D3DXSaveTextureToFileInMemory. I first tried DDS format, but its file sizes were huge. I'm currently using PNG, but you could experiment with different file types.

I don't know what effect pngout.exe has on the sizes of PNGs in memory.