Hi Strango ,
I think it would suffice to do the check every 2-3 seconds or so. IMO no need to check it faster, for me it's no big deal if there is a slight delay before you can access the map if you don't have it.
Took a peek to you code and it seem you are running pretty tight loops on the checks as is, again IMO not really needed.
Anyway looking forward to test if you comes up with something that works in MP.
/Christer (a.k.a KeyCat)