Didn`t see Moogle around here for some time now, maybe you try pm`ing him. He knows the answer.
I'm still reading everything, it's just that more questions get good answers so I'm not replying as often anymore.
let's see, hardness maps.
First of all, don't use 16 bit graphics for hardness maps, there is no guarantee you get your colours back the way you write them. See, in the rgb command there are 3 values(r,g and B) taking 1 byte each(0-255). Normally you would then take 3 bytes per pixel(24 bits), but since we're talking 16 bit graphics in Fenix, it needs to convert those 8 bits per colour you would NEED, to the 5 you actually HAVE. The other way around too, Fenix converts them from 5 to 8 bits when you call map_get_pixel. So for some values for r,g or b this means that when you write them you get different values back. In conclusion, just
don't use 16 bit graphics for hardness maps.
So let's assume you chose 8 bit graphics(1 bit is possible too) for your hardness map. First you need to ask yourself, what is the problem I have. A typical problem that can be solved with hardness maps is the following. Imagine you have a big map(a level in this case), where some regions have different properties than others. Here, you want a character to be able to walk on grass, but not through walls. Now if you would want to find out where he is walking and if he is allowed to do so you COULD try to grab the big map and try to figure out if there is green(implying grass) or brown(for wall) where mr. main character is walking. This could however get tricky when there are other green things he isn't supposed to walk through, and surely costs a decent amount of processing power to determine every frame.
This is where hardness maps come in. Wouldn't it be much easier to have a separate map, with which the only thing you can do is determine whether or not you can walk on that place in the grass/wall/etcetera level map. Instead of using all sorts of colours for eye-candy you would want in the level map the player sees, in that separate map you would only use 2 colours, green and brown(normally you just use colour 1 and 0, or 234 and 163), making the life of mr main character one hell of a lot easier. Just check for green(or the number you assigned 'walkable' to), ok, he can walk, or otherwise conclude that there is no walking allowed.
And that is the basic principle for hardness maps: You have a complicated situation and you solve it by creating a new map with only the specific property filled in you want to know. In this example that may be whether or not a spot in the level is 'walkable', but the idea is extendable to loads of things, checking if a car is still on the racetrack, in the grass or maybe parked against that big wall over there. Or maybe in Kururin if you can go certain places with that stick.
Of course, since you have 255 colours(read, numbers) available per pixel, you could not only specify if there is grass or wall, but if you'd want to you could have colours(numbers) for beach, water, level portals, and who knows what else. Another thing usually done is use a smaller map than the original. Saves space in ram, and if for instance you would make the hardness map a factor 2 smaller one pixel on the hardness map would represent 4(2x2) pixels on the level map, which is often not much of a problem. Of course whether or not that is possible depends on what you are using the hardness map for, but if for instance you are using tiles you could use 1 pixel for every tile.
Hope that clears some things up