Let the actual cost price of the cloth be Rs. 100.
Step 1: The merchant uses a 120 cm scale while buying. This means that for every 100 cm of cloth, he is actually receiving 120 cm, so the merchant is getting more cloth than he is paying for.
The amount of cloth received is:
\[
\text{Cloth received} = \frac{120}{100} = 1.2 \, \text{times the original length}.
\]
Thus, the merchant effectively gets 1.2 times more cloth than he pays for.
Step 2: The merchant then uses an 80 cm scale to sell the cloth, so for every 100 cm of cloth, he is selling only 80 cm. Thus, he is selling less cloth than he paid for.
\[
\text{Cloth sold} = \frac{80}{100} = 0.8 \, \text{times the original length}.
\]
Step 3: The merchant offers a discount of 20% on cash payments, so the effective selling price of 100 cm of cloth is:
\[
\text{Selling price with discount} = 100 \times 0.8 = 80 \, \text{Rs.}.
\]
The overall profit is the difference between the amount of cloth received and the amount of cloth sold, along with the discount factored in.
Step 4: The overall profit percentage is:
\[
\text{Profit percentage} = \frac{120 - 100}{100} \times 100 = 25%
\]
Thus, the overall profit percentage is b. 25%.