I simply created a new world with the same seed as the corrupted world. I then moved the level.dat from the newly created world's save folder to the corrupted world's save folder overwriting the data. This allowed me to enter the nether with no problem.
As far as I am aware of this should not change any blocks. It does however delete all items in your inventory, so you should place them in a chest before attempting this method. It's also worth mentioning that this method transfers gamerules, difficulty, time, gamemode, and some other information, so make sure your newly created world has the same world options as the corrupted one.
Create a new world with the same seed as the corrupted world. Transfer the NBT data from "Data.WorldGenSettings.dimensions" in the newly created world's level.dat to the corrupted world's level.dat.
This method will not change anything except dimensions.
I found two possible solutions to this issue.
Option 1 (easier):
I simply created a new world with the same seed as the corrupted world. I then moved the level.dat from the newly created world's save folder to the corrupted world's save folder overwriting the data. This allowed me to enter the nether with no problem.
As far as I am aware of this should not change any blocks. It does however delete all items in your inventory, so you should place them in a chest before attempting this method. It's also worth mentioning that this method transfers gamerules, difficulty, time, gamemode, and some other information, so make sure your newly created world has the same world options as the corrupted one.
This wiki contains exactly what data transferred.
Option 2 (better option, requires NBT editing):
Create a new world with the same seed as the corrupted world. Transfer the NBT data from "Data.WorldGenSettings.dimensions" in the newly created world's level.dat to the corrupted world's level.dat.
This method will not change anything except dimensions.
Make backups!