The freedesktop.org Shared MIME database (http://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec/) provides a single way to store static information about MIME types and rules for determining a type.
The freedesktop.org Desktop Entry specification (http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec/) allows applications to announce which MIME types they support.
This specification solves the remaining issues: which application should open a file by default, how to let the user change the default application, and how to let the user add or remove associations between applications and mimetypes.