Although not directly a multimap library, uthash implements a simple associative array in C and is only a header file, so it is fairly portable with low environment overhead.
Using uthash, you could simply create a multi-level associative array, treating the child associative arrays as sets. The uthash documentation provides a simple example for creating and using multi-level associative arrays.