Split the legislature into two houses. The house of revenue and the house of spending. Voters elect different representatives to both houses. The house of revenue can tax and raise money in whatever way they see fit, but can not spend money. The house of spending can spend money as they see fit, but can’t raise or change taxes or revenue generation. Nor can the house of spending spend more than the house of revenue provides them. (No funny accounting tricks here. The house of revenue provides X dollars and the house of spending can only spend up to X dollars, no more)
The way I see it, suddenly we have one batch of candidates that will campaign and answer for how little they will tax, and another group that will campaign and answer for how they spend. This will force the voters to face this problem and find a balance.