The bug
When creating a custom world with the dimension type defined as an object, the game crashes. This essentially means that you cannot define custom dimensions when importing world settings when creating a new world. This crash also happens when loading a dimension inside a data pack that uses an object as dimension type, rather than a string referencing a dimension type.
(1.16 Pre-Release 2) [^crash-2020-06-05_12.19.07-server.txt]
Description: Exception in server tick loop
java.lang.IllegalStateException: Unregistered dimension type: cic@50cbe633
at net.minecraft.server.MinecraftServer.a(SourceFile:407)
at net.minecraft.server.MinecraftServer$$Lambda$3891/471301969.get(Unknown Source)
at java.util.Optional.orElseThrow(Optional.java:290)
at net.minecraft.server.MinecraftServer.a(SourceFile:407)
at net.minecraft.server.MinecraftServer.l_(SourceFile:334)
at eov.d(SourceFile:69)
at net.minecraft.server.MinecraftServer.v(SourceFile:646)
at net.minecraft.server.MinecraftServer.a(SourceFile:256)
at net.minecraft.server.MinecraftServer$$Lambda$3854/1593184149.run(Unknown Source)
at java.lang.Thread.run(Thread.java:745)
How to reproduce
Download the attached world settings file
Create a new world and use the import world button
❌ The game crashes
It is possible to get custom dimensions working through the datapack method. I got both my glass dimension for my redstone testing world working in datapack form as well as the cave dimension for my survival world. Granted, I had to edit out the nbt from the level.dat for the registered dimensions, but the same world gets loaded from previous snapshots and providing you keep the seed consistent, it generates the same way past the furthest generated chunks. If needed, I can provide a worldgen.json for both of these worlds as well as the bare datapacks that work in Pre-release 2. I did base my datapacks off of the custom:lol dimension released on Twitter.