You can also achieve a shared library by using MC's library server functionality, which will share a library between a server and various clients. This works when there are multiple OS's pretty well; I currently run a mixed environment with a windows server and about 5 PC clients (both linux and windows). The main limitation of this is that your server needs to be on 24/7 (or at least it needs to be wakeable by your clients). The main advantage of this method over relying on file tags for metadata syncing is that in the server/client setup you really share the same literal library in real time so *everything* is synced correctly, including various metadata items that aren't written to the files (like whether a TV episode has been watched, play counts, or subtitle settings, etc.). Those make a big quality of life difference for me as I'm not the only user of my system, and, for example, knowing that my wife has watched the latest recorded episode of the news tells me I can safely delete it, etc.
The "hitch" is that certain library operations can only be done from the server, not from the clients. The main examples are CD ripping, permanently editing library views, adding files, and changing cover art. Almost all other tagging and organizational operations work fine from clients. Adding files is easy to work around by having the server use auto-import watching a shared directory that clients can reach on the network, and after the library views are setup I rarely change my library views. The only thing I find myself getting up and going to the server to do is cover art stuff, but in the end its worth it for me to have consistent tracking of whether things have been watched or not, playcounts, etc. It also considerably simplifies setting up new clients.