There is no hard-and-fast rule. But this question should always be considered carefully when thinking of redesigning a system.
In general, it is very bad practice to hard-code any settings into your program. Configuration settings and large external values should always come from files. This separation of data and code (or logic) should, for any reasonably sized application, make your code more readable and manageable.
Generally, this should be a goal from the start. If you find yourself, as in this case, with a messy code-base with hard-coded values strewn around, then you need to carefully consider if refactoring it the "correct" way is worth the cost. Refactoring an existing application is both time-consuming and provides no immediate benefit to end-users (or your employer).
While it may feel bad to have ugly code like this around, in a real-life situation, you often do not have the luxury to polish code to the degree you'd personally be comfortable with. Only once the maintainability of the code becomes a hindrance to further development efforts is a refactor often worth it.
In this case, it is your app, so you are in complete control. Besides, you have already put in the work for the rewrite, so congratulations! However, your code should not be more complex than it was before:
I've noticed my codebase is nearly 3x the size and feels much more complex than it did earlier.
The size increase is expected, but what you mean by "complex" is important there. Do you find the code harder to reason about and navigate? If so, this is a big red-flag, as you wrote all of the code yourself! Imagine if you came in as a new developer to a company and were expected to start working on this codebase. Do you think you'd find it easy or difficult?
On the other hand, if by "complex" you just mean that there's more logic going on, but you still understand it well, then that's less of a worry. If you add more functionality to an application, there's going to be more moving parts. But the overall quality of code throughout the application should remain roughly the same.