I've implemented MIME twice, one of which it's easy to answer about.
I added MIME support to Andrew in about 3 days. It doesn't quite meet
your criteria for data structures directly, because it does on-the-fly
translation into Andrew format, which does have pretty much all the
properties you mention. And this DOES include richtext support, by the
Metamail is harder to answer about. It is a standalone program that
liberally accepts a vast superset of MIME and does any number of things
with it. The first version of metamail was written BEFORE any of the
MIME discussions started, as an implementation vehicle for other mail
experiments I was performing, notably ATOMICMAIL. There has been a
working version of metamail that corresponded to every single draft of
the MIME specification. All in all, I've probably put six months of
work into metamail, but this clearly is a vast overstatement of the
amount of effort involved in implementing MIME.