While it is inefficient in different ways, I run a full node, and use namecoin-cli name_scan 'd/start' (where start picks up last scan left off) to get the json for all names and convert to a BIND format DNS zone for BIT. Which reminds me, I need to update to handle new fields showing up as well as new garbage entries (yes America, blockchains have spam too).
E.g. if the "value" field has something like: "value": "Bitmessage address: BM-2cVjyhb9jVFHpkkNhcH1Xbmm56Rh9vWS9s", then the name is owned by a squatter, and should be ignored. (Hey, they are paying the miners to maintain their squatted names.)