As
someone who works for one, I can assure you it's not a MLS software vendor conspiracy but take from that what you will. I can answer just about any questions you'd have about metadata but giving you a RETS account to each of our MLS customers means that you have access to their data and that's just not something I can do. The field formats in every case are defined by our customers (the local associations or MLS's which are made up of or voted in by agent members) so it's something that belongs to them.
As I said, I can help to provide more specific answers if you have specific questions. To summarize in a very short way:
Any time you have fields that apply to each listing, you'll find those as part of the main listing record (from the Property resource). This would include the basic fields like address information or price but also often includes fields such as the features that could have multiple selections. These are sometimes combined or sometimes split up as a bunch of boolean fields. For example, "Fireplace" might be a general feature category. You might have 1 field for "Fireplace" which contains a comma-delimited list of values if multiple were selected or you might have a separate field for each fireplace type with a true/false flag showing if it was selected.
When you get into getting room dimension or unit information, those are broken out (at least in our system) in a separate RETS resource (though we do provide limited room-related detail directly along with the listing). Because 1 property could have 2 rooms and another could have 20, it's nearly impossible to come up with a sane way to provide that information in fixed column format bolted onto each listing. Instead, you download 1 record per room per listing from a different section (so you get it in row format instead of fields).