How about this alternative approach to answer Q1:
Step 1: Get some room by defining first the diagonal of $*$ (which is mapped to numbers divisible by $5$):
- $z*z := 5z$ for $z > 0$ and $z*z := 5z-5$ for $z <= 0$.
Now we define the meaning of $x*y$ for $x\ne y$ depending on $x \bmod 5$ and $y \bmod 5$.
Step 2: We recode all integers in different ways (to signal if we want to add or multiply)
- $z * (z*z) := 5z+1$ (special $x*y$ for $y = 0 \bmod 5$ and $x \ne y$).
- $(z*z) * (z*(z*z)) := 5z+2$ (special $x*y$ for $x = 0 \bmod 5$ and $y = 1 \bmod 5$).
- $(z*z) * ((z*z) * (z*(z*z))) := 5z+3$ (special $x*y$ for $x = 0 \bmod 5$ and $y = 2 \bmod 5$).
Step 3: We define the addition and the multiplication
- $(y*(y*y)) * ((z*z) * (z*(z*z))) := y + z$ (special $x*y$ for $x = 1 \bmod 5$ and $y = 2 \bmod 5$).
- $(y*(y*y)) * ((z*z) * ((z*z) * (z*(z*z)))) := y + z$$(y*(y*y)) * ((z*z) * ((z*z) * (z*(z*z)))) := y \cdot z$ (special $x*y$ for $x = 1 \bmod 5$ and $y = 3 \bmod 5$).
The still undefined values of $x*y$ can be assigned arbitrarily. The last two definitions give the formulas for addition and multiplication.