so about the IMG files, for the header you can refer to Megadrifter's thread about it. i haven't figured out the ETC1 format yet, though there's a specification and implementation, i couldn't get it to work (yet... or maybe i'll just implement it myself). for RGB8 and RGBA8888, the pixel data are stored in little-endian (BGR/BGRA) and stored bottom-row first. (so if you'd unscramble the image and output it straight to BMP format you'd have no problems)
the pixels are arranged this way, in blocks of 8x8. the blocks are then arranged left-to-right, bottom-to-top:
hopefully this helps visualizing it, done in 3 steps (which is basically taking blocks of 2n x n pixels, stack them on each other, for n = 1,2,4)
this is what it looks like with three steps separated:
this also applies to portrait pictures, which i suppose Andibad has already done. the portrait pictures has japanese text below them describing the emotion of the portrait.
here's the source code to convert IMG <-> PNG: https://dl.dropboxusercontent.com/u/40407085/Stuff/imgconv.cpp
you need lodepng.h and lodepng.cpp to compile that.
and the compiled version with source code is here: https://dl.dropboxusercontent.com/u/40407085/Stuff/imgconv.zip
right now the tool can only convert RGB8 and RGBA8888 though.
also: all portraits in the data (but i deleted redundant ones): https://mega.nz/#!5EBBDT7B!jSV9Y0mnoOWfyvBzpy2Me4gaNrxmGlHnisxj7yUxRJs