Zen 2 has 16MB of L3 per CCX.
The 3900X and 3950X have 64MB L3 because they are 4 CCX, 'not 2', 3800X, 3700X, 3600X and 3600 are 32MB L3 because they are made up of 2 CCX. its 2 CCX per die. So 32BM per die. for example the 3600 takes 3 cores from each CCX in the die, each CCX has 16MB L3.
Think of it like 2X 7700K's stitched together in a single die, only with twice the L3 cache each, 16MB vs 8MB.
Zen 3 will also have 32MB per die but 8 cores in a single CCX. Think of this as a 9900K again with 2X the L3 cache, 32MB vs 16MB. A Ryzen 4800X would make up one full die (CCX) A Ryzen 4900X would make up two full dies (2x CCX)
counter to common belief Zen 2 is actually better with very low threaded games than it is with high threaded games, Zen 2 has hardware level AI that keeps the game threads inside a single CCX (where it can) so with CS:GO the performance is excellent as there is no CCX to CCX latency, a medium thered game like FC5 / New Dawn it isn't so good because the threads are moving between CCX's, often Zen 2 also does very well with higher threaded games that use a lot of AI and physics because those are threads that don't tend to move about, Like Assassin's Creed / Hitman.
Zen 3 will make Ryzen behave like a 9900K because its an 8 core CCX, but add on top of that the IPC difference Zen 2 vs Coffeelake, see CS:GO, and then the IPC gain on top of Zen 2 vs Zen 3.