Well, if overhauling the schema is not currently an option (although I'd be planning for it to get those descriptions out of there) then I'd just advise that you tackle the load as you would a normal batch job, and identify the longest running queries with a view to optimizing them -- you have my sympathies also :D
You might also direct your developers attention to the Oracle Data Warehousing Guide, which gives some very nice examples on how to structure and load data (almost exactly the opposite of your current method, I suspect).
Proportion wise the time taken is less. Most of the time the queries finish in under 40 mins for all the tables. However on some occassions when there has been a significantly larger load, the queries just drop dead. We then either drop/recreate the indexes or force a hint into the query.