Have a generic country object that either has a name or id you can use to idenify each country with. when a player clicks on the object check to see if that point is contained within the shape, if it is then select that country. Your method sounds a bit messy to say the least, I would really rethink how you're approaching the problem.
I thought of your approach, but I am worried that it will eat my CPU, and I am going to need that for other stuff.
Create a second (software) surface (hardware surfaces are slow to read from) with the colorkeyed version of the map and read the colors from that surface (don't render it).
You can probably use a lower resolution for this map aswell to save memory (just remember to properly scale down the mouse position aswell before reading the keyed map though)
Here is a link with info on how to access surface pixels with SDL: http://www.libsdl.or...gi/Pixel_Access
Thank you, I will use this approach.