So, hat zwar etwas gedauert aber das Ziel ist erreicht :-)
Zur Lösung gehörten zwei grundlegende Sachen:
1.) Ahnung vom Parsen von XML-Dateien zu haben und
2.) den Richtigen Base64 decoder benutzen
ad 1)
Ich habe mich im Nachhinein gegen den SAX- und für den DOM-Parser von java entschieden. Der SAX-Parser ist zwar einfacher zu handhaben, wenn es ums reine Auslesen geht liefert aber nicht den originalen String zurück, zumindest wenn man es so wie ich macht und nur über den Handler geht. Der DOM-Parser ist zwar ein wenig umständlich, aber wenn man weiß, wie man an die Unterelemente kommt nur ein wenig Schreibarbeit um an den Original-String zu gelangen.
ad 2)
Die Versuche mit der hier vorgeschlagenen MIMEEntity Klasse zu arbeiten habe ich schnell verworfen, da ich nicht wusste, wie man diese genau einzusetzen hat, da ich keine brauchbare Dokumentation gefunden habe. Danach versuchte ich es mit dem Base64 Klasse von Ostermiller und musste nach einigen Versuchen feststellen, dass einzelne bytes (Vergleich mit dem Editor) unterschiedlich zu sein schienen. Zu guter letzt (ich zähle jetzt nicht alle auf) fand ich den sun.misc.BASE64Decoder (der von anfang an zur java-api gehört "arg").
Der Rest war einfacher als ich zuerst dachte. Einfach einen FileOutputStream instanziieren, das aus der BASE64Decoder.decodeBuffer(String input) methode gewonnene byte[] hineingeben, stream schließen, ende.
Ich hoffe, das ich mit dieser kurzen Ausführung jemandem helfen kann, dem ich das mühsälige ausprobieren ersparen möchte.