In our kitchen, as the boys were growing up, we had "count-by" tables posted at random locations. In order to teach my youngest son how to multiply two digit numbers, we focused upon learning squares. This idea proceeded along the lines of $20\times 20 =400$. What is $2\times 20$? What is $2\times 20 +1$? What is $20\times20 + 2 \times 20 +1$? What is $21\times 21$? Essentially, I taught him to internalize $n^2+2n+1$, $n^2-2n+1$, $n^2 \pm 4n+1$4n+4$, and $n^2\pm 6n +9$. In this way, if a square was proximate to a square he knew, he could compute the unknown square. Approximating products as the square of the average is a good trick, and finally, you can compute the product of two numbers of the same parity by squaring the average and subtracting the square of the difference to the average. If the numbers have differing parity, then you need to subtract numbers of the form $n(n+1)$. A lot of algebraic rules become easier to understand if alternative algorithms to multiplication are employed.
I also strongly encourage counting by eggs (via dozens) $1/12$, $1/6$, $1/4$, $1/3$, $5/12$, $1/2$, $7/12$, $2/3$, $3/4$, $5/6$, $11/12$, 1 dozen. And counting by other fractional quantities. You will have to train yourself to do the mental arithmetic as you teach your children.
Finally, look at puzzle books and problem solving books, and look for games that involve dice and (ordinary) playing cards.