I used Tinkercad to adapt a Tronxy Crux 1 spool holder (that I had previously modified) to a Creality Ender 2 Pro keyed type so I could run small spools on my Ender 2 Pro. Most of the small holed spools are cheap filament or specialty filaments. It doesn't roll, much like the original one. I wouldn't use it with regular or heavy spools but it should work great with smaller ones. I have test fited it quite a bit and I am very satisfied with it. It also may fit Ender 3's if they use the keyed type spool holder.
I used this “Ender 3 Spool Holder Mod” #159195
And “Tronxy Crux 1 filament holder” #352117
This model can be printed upright and it won't need supports or longwise by using tree supports touching the buildplate. I used PLA with 40 percent infill but that may be overkill. I may print it with PETG or PLA+ but I don't see a reason too at the moment.
The author marked this model as their own original creation.