The handling of base64 encoding in the package XML is insane
The XML is gonna happily swallow the <encoding>base64</encoding> tag for pretty much any field type  (even those where it makes absolutely no sense, such as checkbox), however, subsequently it will only decode the value for textarea tag . As a result, when you use this in a package somewhere else than in textarea, the value gets base64-encoded on every save. Again, again, and again. It'd be kinda useful to be able to use for other things, such as, hmmmm... passwords that screw up the config.xml when people put special chars in there (which they frequently do).
pkg_edit.php - base64 encoding/decoding fixes (Bug #5134)
Currently, the base64 is only usable for textarea fields - see Bug #5134 for details.
This adds base64_decode() to input and password field types if <encoding>base64</encoding> tag is set for those fields (also for rowhelpers) to prevent the values from getting perpetually re-encoded which makes it unusable for those field types.
Ideally, usage of the <encoding> tag should be prevented for fields type where it doesn't make any sense whatsoever, someone else needs to look into that, the packages.dtd XSD schema is a pathetic useless POS.