A simplest form of MPPT is merely an input voltage monitoring, where you set your converter/charger to follow the maximum power point voltage indicated on your specific solar panel. You haven't listed all of your solar panel's output specifications here, but this one most likely has 18V as its Vmpp (voltage at maximum power point).
In your case you need to inject additional current into the feedback pin of the LM2596 when the panel/input voltage drops below 18V, which would reduce the pulse width and with it the load on the panel, and thus allow input voltage to go back up to 18V.
Here is the simple schematic I came up with:
I have also included the UVL (under-voltage lockout) circuit which will not let the LM2596 start until the solar panel voltage has reached around 12V, because there will very little power output on the panel below that voltage.
You also need a BMS (battery management system) to disconnect the charging side from the battery once the current starts flowing in the opposite direction, otherwise your charging circuit will keep discharging the cell/battery.
Finally, this is not really an MPPT circuit, as it merely serves to prevent the solar panel voltage from dropping below its Vmpp, but it doesn't work in the opposite direction to bring it back down to Vmpp - the load or the 4.2V regulation will do that as necessary for its own needs.
The main point of this circuit is to prevent overloading the panel's output, which brings its voltage down to battery's (load's) voltage, in this case 18V to 4V, and thus reduces panel's power output to 25% 1/4 of the actual power available, which is a huge loss, especially when every milli-Ampere of current counts during short, cloudy or rainy days.
Panel's voltage going up to its Voc will not happen as long as there is any significant load on its output, so not limiting its maximum voltage will not cause a significant loss of available power.