To be utterly pragmatic, I think at this moment the best approach for
this problem would be an evolutionary one.
Just implement whatever format you feel like and see if it takes. No
one is going to sue you, although you are guaranteed to get your fair
share of critics, no matter what.
At the worst case, this particular situation is so utterly simple that
it should be trivial to convert one format to another if the need
arises.
If it helps in the end I chose for my project INI files just because
it was a Qt app and Qt provides a nifty INI parser (QSettings) with
some merging capabilities (concurrent Qt processes can make changes
without corrupting the file and those are easily synchronized.) But
that was me just being lazy, I guess.
As for the directory structure it went something like:
Global: /usr/share/ladspa/presets/plugin-name/preset-name.ini
Local: ~/.ladspa/presets/plugin-name/preset-name.ini
It is a ladspa-centric app, so it seemed appropriate. I don't recall
now if ladspa's can be versioned, but it should be easy to insert a
version number somewhere (in the path, in the ini file...)