If you warmed up your IP properly and you are still at 80%, then you can do what Jocelyn suggests by segmenting the database and email sends by personal domain and putting them out in batches. I think someone recommended 30-60min between sends for a domain.
But I suspect that your list is just bad. When I was around 85% I jumped to 98% by going through spam traps, multiple bounced leads, and people who hadn't done anything in awhile. Seems a bit odd that you'd have to cut 20% of your database to achieve 99% deliverability, but that's what needs to happen in many cases.
Another test after all this is to run smaller, more targeted offers on a consistent basis.
I have also asked people to sign up specifically for a new list/offer from an old list so I know who is engaged.